Skill

T-SQL এর কন্ডিশনাল লজিক

টি-এসকিউএল (T-SQL) - Database Tutorials

375

T-SQL (Transact-SQL) SQL Server-এর এক্সটেনশন হিসেবে ব্যবহার করা হয় এবং এতে SQL-এর সাধারণ কন্ডিশনাল স্টেটমেন্টের পাশাপাশি কিছু অতিরিক্ত ফিচারও রয়েছে যা শর্ত ভিত্তিক লজিক পরিচালনা করতে সহায়তা করে। T-SQL-এ কন্ডিশনাল লজিক ব্যবহারের জন্য বিভিন্ন স্টেটমেন্ট রয়েছে, যেমন IF...ELSE, CASE, এবং WHILE লুপ। এই স্টেটমেন্টগুলি ডেটাবেসে ডেটা প্রক্রিয়াকরণ, সিদ্ধান্ত গ্রহণ, এবং লজিক্যাল ফ্লো পরিচালনা করতে ব্যবহৃত হয়।

নিচে T-SQL এর কন্ডিশনাল লজিক সম্পর্কিত কিছু গুরুত্বপূর্ণ স্টেটমেন্ট এবং তাদের ব্যবহার ব্যাখ্যা করা হলো।


১. IF...ELSE স্টেটমেন্ট

IF...ELSE স্টেটমেন্ট ব্যবহার করে T-SQL-এ শর্তভিত্তিক লজিক বাস্তবায়ন করা যায়। এটি এক বা একাধিক শর্তের উপর ভিত্তি করে বিভিন্ন এক্সপ্রেশন বা কোড চালায়।

ব্যবহার:

IF <condition>
    -- condition সত্য হলে এই কোড ব্লকটি চালানো হবে
    BEGIN
        -- কোড
    END
ELSE
    -- condition মিথ্যা হলে এই কোড ব্লকটি চালানো হবে
    BEGIN
        -- কোড
    END

উদাহরণ:

DECLARE @Age INT = 18;

IF @Age >= 18
    PRINT 'Adult';
ELSE
    PRINT 'Minor';

এটি চেক করবে যদি Age ১৮ বা তার বেশি হয়, তাহলে 'Adult' মুদ্রিত হবে, অন্যথায় 'Minor' মুদ্রিত হবে।


২. CASE স্টেটমেন্ট

CASE স্টেটমেন্ট ব্যবহার করে একাধিক শর্তের উপর ভিত্তি করে একাধিক মানের মধ্যে নির্বাচন করা যায়। এটি একটি IF...ELSE স্টেটমেন্টের চেয়ে আরও নমনীয় এবং সুবিধাজনক।

ব্যবহার:

SELECT 
    CASE 
        WHEN <condition1> THEN <result1>
        WHEN <condition2> THEN <result2>
        ELSE <default_result>
    END AS Result
FROM <table_name>;

উদাহরণ:

DECLARE @Day INT = 3;

SELECT 
    CASE 
        WHEN @Day = 1 THEN 'Sunday'
        WHEN @Day = 2 THEN 'Monday'
        WHEN @Day = 3 THEN 'Tuesday'
        ELSE 'Invalid day'
    END AS DayName;

এটি DayName কলামে Tuesday ফিরিয়ে দিবে যদি @Day ৩ হয়।


৩. WHILE লুপ

WHILE লুপ ব্যবহার করে T-SQL-এ একটি শর্তের ভিত্তিতে কোডের একাধিক রাউন্ড চালানো যেতে পারে। এটি বিশেষভাবে তখন ব্যবহার হয় যখন আপনি একটি শর্ত পূরণ না হওয়া পর্যন্ত কোড পুনরায় চালাতে চান।

ব্যবহার:

WHILE <condition>
BEGIN
    -- কোড
END

উদাহরণ:

DECLARE @Counter INT = 1;

WHILE @Counter <= 5
BEGIN
    PRINT 'Counter value: ' + CAST(@Counter AS VARCHAR);
    SET @Counter = @Counter + 1;
END

এটি 'Counter value: 1' থেকে 'Counter value: 5' পর্যন্ত প্রতিটি সংখ্যার জন্য মুদ্রিত করবে।


৪. IF...ELSE IF...ELSE স্টেটমেন্ট

IF...ELSE IF...ELSE স্টেটমেন্ট একটি শর্তবদ্ধ চেক করার জন্য ব্যবহৃত হয়, যেখানে একাধিক শর্তের মধ্যে কোনো একটি সঠিক হলে সংশ্লিষ্ট কোড এক্সিকিউট হবে।

ব্যবহার:

IF <condition1>
    -- condition1 সত্য হলে কোড
ELSE IF <condition2>
    -- condition2 সত্য হলে কোড
ELSE
    -- অন্যথায় কোড

উদাহরণ:

DECLARE @Score INT = 85;

IF @Score >= 90
    PRINT 'Grade A';
ELSE IF @Score >= 80
    PRINT 'Grade B';
ELSE IF @Score >= 70
    PRINT 'Grade C';
ELSE
    PRINT 'Grade F';

এটি 'Grade B' মুদ্রিত করবে যদি @Score ৮০ বা তার বেশি এবং ৯০ এর কম হয়।


৫. BEGIN...END ব্লক

BEGIN...END ব্লক ব্যবহার করে একাধিক স্টেটমেন্ট একত্রে চালানো যায়, যা বিশেষত IF...ELSE, WHILE লুপ বা অন্যান্য শর্তমূলক লজিকের ক্ষেত্রে সহায়ক।

উদাহরণ:

DECLARE @Age INT = 20;

IF @Age >= 18
BEGIN
    PRINT 'Adult';
    PRINT 'Eligible to vote';
END
ELSE
BEGIN
    PRINT 'Minor';
    PRINT 'Not eligible to vote';
END

এখানে, @Age ১৮ বা তার বেশি হলে দুটি স্টেটমেন্ট একসাথে চালানো হবে।


৬. RETURN স্টেটমেন্ট

RETURN স্টেটমেন্টটি একটি ফাংশন বা স্টোরড প্রসিডিউর থেকে কোনো মান রিটার্ন করার জন্য ব্যবহৃত হয়। এটি একটি লজিক্যাল শর্তের ভিত্তিতে প্রোগ্রাম ফ্লো নিয়ন্ত্রণ করতে সাহায্য করে।

উদাহরণ:

CREATE FUNCTION CheckEligibility (@Age INT)
RETURNS VARCHAR(50)
AS
BEGIN
    IF @Age >= 18
        RETURN 'Eligible'
    ELSE
        RETURN 'Not Eligible'
END

এটি @Age এর ভিত্তিতে Eligible বা Not Eligible রিটার্ন করবে।


সারাংশ

T-SQL এ কন্ডিশনাল লজিক ব্যবহারের জন্য বেশ কিছু গুরুত্বপূর্ণ স্টেটমেন্ট রয়েছে, যেমন:

  • IF...ELSE: শর্তভিত্তিক সিদ্ধান্ত নেয়ার জন্য ব্যবহৃত।
  • CASE: একাধিক শর্তের জন্য কাজ করার একটি পদ্ধতি।
  • WHILE: একটি শর্ত পূর্ণ না হওয়া পর্যন্ত লুপ চালানোর জন্য।
  • IF...ELSE IF...ELSE: একাধিক শর্ত যাচাই করার জন্য।

এই স্টেটমেন্টগুলো SQL Server-এ কার্যক্রম পরিচালনা করতে এবং জটিল লজিক বাস্তবায়ন করতে অত্যন্ত সহায়ক।

Content added By

IF...ELSE স্টেটমেন্ট একটি কন্ট্রোল ফ্লো স্টেটমেন্ট যা T-SQL (Transact-SQL) এ শর্তাধীন লজিকাল ফ্লো পরিচালনা করতে ব্যবহৃত হয়। এটি কোনো শর্তের উপর ভিত্তি করে কোডের একটি নির্দিষ্ট অংশ কার্যকর করতে সাহায্য করে। যদি শর্ত সত্য হয়, তাহলে IF ব্লকের কোড এক্সিকিউট হবে, এবং যদি শর্ত মিথ্যা হয়, তাহলে ELSE ব্লকের কোড এক্সিকিউট হবে।


IF...ELSE সিনট্যাক্স

IF (condition)
    BEGIN
        -- কোড যা শর্ত সত্য হলে চলবে
    END
ELSE
    BEGIN
        -- কোড যা শর্ত মিথ্যা হলে চলবে
    END
  • condition: এখানে শর্তটি হবে যে কোনো এক্সপ্রেশন যা সত্য (TRUE) অথবা মিথ্যা (FALSE) হতে পারে।
  • BEGIN...END: একাধিক স্টেটমেন্ট একসাথে চলানোর জন্য BEGIN এবং END ব্লক ব্যবহার করা হয় (যদি একাধিক স্টেটমেন্ট থাকে)।

উদাহরণ ১: মৌলিক IF...ELSE স্টেটমেন্ট

ধরা যাক, আমরা একটি চেক করতে চাই যে একটি নাম্বার পজিটিভ কি না।

DECLARE @Number INT = 5;

IF @Number > 0
    BEGIN
        PRINT 'The number is positive.';
    END
ELSE
    BEGIN
        PRINT 'The number is not positive.';
    END

এখানে:

  • যদি @Number 0-এর বেশি হয়, তাহলে IF ব্লকটি কার্যকর হবে এবং "The number is positive." প্রিন্ট হবে।
  • যদি @Number 0 বা এর নিচে থাকে, তাহলে ELSE ব্লকটি কার্যকর হবে এবং "The number is not positive." প্রিন্ট হবে।

উদাহরণ ২: একাধিক IF...ELSE স্টেটমেন্ট

ধরা যাক, আমরা একটি নির্দিষ্ট নাম্বার পরীক্ষা করতে চাই এবং তার ভিত্তিতে একটি বার্তা প্রিন্ট করতে চাই যে নাম্বারটি পজিটিভ, নেগেটিভ অথবা শূন্য।

DECLARE @Number INT = -5;

IF @Number > 0
    BEGIN
        PRINT 'The number is positive.';
    END
ELSE IF @Number < 0
    BEGIN
        PRINT 'The number is negative.';
    END
ELSE
    BEGIN
        PRINT 'The number is zero.';
    END

এখানে:

  • যদি @Number 0 এর চেয়ে বড় হয়, তাহলে "The number is positive." প্রিন্ট হবে।
  • যদি @Number 0 এর চেয়ে কম হয়, তাহলে "The number is negative." প্রিন্ট হবে।
  • যদি @Number 0 হয়, তাহলে "The number is zero." প্রিন্ট হবে।

উদাহরণ ৩: নেস্টেড IF...ELSE স্টেটমেন্ট

একটি শর্তের মধ্যে আরেকটি শর্ত ব্যবহার করতে চাইলে IF...ELSE নেস্টেড করা যায়।

DECLARE @Number INT = 10;

IF @Number >= 0
    BEGIN
        IF @Number == 0
            BEGIN
                PRINT 'The number is zero.';
            END
        ELSE
            BEGIN
                PRINT 'The number is positive.';
            END
    END
ELSE
    BEGIN
        PRINT 'The number is negative.';
    END

এখানে:

  • প্রথমে চেক করা হচ্ছে যে @Number 0 বা তার বেশি কি না।
  • এরপর যদি তা 0 হয়, তাহলে "The number is zero." প্রিন্ট হবে। আর যদি তা 0 এর বেশি হয়, "The number is positive." প্রিন্ট হবে।
  • যদি প্রথম শর্তটি মিথ্যা হয়, তাহলে "The number is negative." প্রিন্ট হবে।

সারাংশ

IF...ELSE স্টেটমেন্ট T-SQL-এ শর্তাধীন লজিকের জন্য ব্যবহৃত হয়। এটি কোনো শর্তের উপর ভিত্তি করে বিভিন্ন কোড ব্লক এক্সিকিউট করতে সাহায্য করে। আপনি একাধিক IF...ELSE IF এবং ELSE ব্লক ব্যবহার করে জটিল শর্তাধীন লজিক তৈরি করতে পারেন।

Content added By

SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক প্রদান করে, যা SQL কুয়েরি বা স্টোরড প্রসিডিউরের মধ্যে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি IF...ELSE লজিকের মতো কাজ করে, তবে SQL এর মধ্যে এটি ব্যবহার করা হয়।

CASE স্টেটমেন্ট দুটি প্রকারে ব্যবহৃত হতে পারে:

  1. Simple CASE Expression: এক বা একাধিক মানের মধ্যে শর্ত পরীক্ষা করা।
  2. Searched CASE Expression: এক বা একাধিক শর্ত অনুযায়ী মান নির্বাচন করা।

১. Simple CASE Expression

এটি ব্যবহার করা হয় যখন আপনি একটি কলামের মানের ভিত্তিতে অন্য একটি মান নির্ধারণ করতে চান। এই ক্ষেত্রে, আপনার কাছে একটি নির্দিষ্ট কলামের মান থাকবে, এবং আপনি সেই মানের জন্য একটি শর্ত নির্ধারণ করবেন।

সিনট্যাক্স:

CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result_default
END

উদাহরণ:

ধরা যাক, একটি Students টেবিল আছে যেখানে ছাত্রদের Grade (A, B, C, D) আছে এবং আমরা তাদের জন্য মান নির্ধারণ করতে চাই। উদাহরণস্বরূপ:

SELECT Name,
       Grade,
       CASE Grade
           WHEN 'A' THEN 'Excellent'
           WHEN 'B' THEN 'Good'
           WHEN 'C' THEN 'Average'
           ELSE 'Needs Improvement'
       END AS Performance
FROM Students;

এখানে:

  • Grade কলামের মানের ভিত্তিতে Performance কলামে ফলাফল দেওয়া হবে।
    • যদি Grade 'A' হয়, তাহলে Performance হবে 'Excellent'
    • যদি Grade 'B' হয়, তাহলে Performance হবে 'Good'
    • অন্যান্য মানের জন্য 'Needs Improvement' দেখাবে।

২. Searched CASE Expression

এটি তখন ব্যবহার করা হয় যখন আপনি একাধিক শর্ত পরীক্ষা করতে চান এবং প্রতিটি শর্তের জন্য নির্দিষ্ট ফলাফল ফেরত দিতে চান।

সিনট্যাক্স:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result_default
END

উদাহরণ:

ধরা যাক, আপনি ছাত্রদের Age এবং Score পরীক্ষা করে তাদের ফলাফল নির্ধারণ করতে চান। উদাহরণস্বরূপ:

SELECT Name, Age, Score,
       CASE
           WHEN Age >= 18 AND Score >= 50 THEN 'Pass'
           WHEN Age >= 18 AND Score < 50 THEN 'Fail'
           WHEN Age < 18 AND Score >= 50 THEN 'Underage Pass'
           ELSE 'Underage Fail'
       END AS Result
FROM Students;

এখানে:

  • আমরা Age এবং Score কলামগুলির শর্ত অনুসারে ছাত্রদের ফলাফল নির্ধারণ করছি:
    • যদি Age >= 18 এবং Score >= 50 হয়, তাহলে Result হবে 'Pass'
    • যদি Age >= 18 এবং Score < 50 হয়, তাহলে Result হবে 'Fail'
    • যদি Age < 18 এবং Score >= 50 হয়, তাহলে Result হবে 'Underage Pass'
    • অন্যথায়, 'Underage Fail' দেখাবে।

৩. CASE এর ব্যবহার GROUP BY এর সাথে

CASE স্টেটমেন্ট সাধারণত GROUP BY এর সাথে ব্যবহার করা যায়, যাতে আপনি শর্তাবলী অনুসারে গ্রুপিং বা এগ্রিগেশন করতে পারেন।

উদাহরণ:

ধরা যাক, আপনার Orders টেবিল আছে যেখানে অর্ডারের Amount এবং Status রয়েছে, এবং আপনি অর্ডারের পরিমাণের ভিত্তিতে মোট বিক্রয়ের হিসাব করতে চান:

SELECT 
    CASE
        WHEN Amount > 1000 THEN 'High Value'
        WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
        ELSE 'Low Value'
    END AS OrderValue,
    SUM(Amount) AS TotalSales
FROM Orders
GROUP BY
    CASE
        WHEN Amount > 1000 THEN 'High Value'
        WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
        ELSE 'Low Value'
    END;

এখানে:

  • আমরা Amount অনুসারে অর্ডারগুলিকে 'High Value', 'Medium Value', এবং 'Low Value' হিসাবে শ্রেণীবদ্ধ করছি এবং প্রতিটি শ্রেণীভুক্ত মানের জন্য মোট বিক্রয় (TotalSales) গণনা করছি।

৪. CASE স্টেটমেন্টে NULL মান ব্যবহার

CASE স্টেটমেন্টে NULL মানও পরীক্ষিত হতে পারে, যাতে আপনি NULL মানের জন্য আলাদা ফলাফল প্রদান করতে পারেন।

উদাহরণ:

SELECT Name,
       Age,
       CASE
           WHEN Age IS NULL THEN 'Age not provided'
           WHEN Age < 18 THEN 'Minor'
           ELSE 'Adult'
       END AS AgeStatus
FROM Students;

এখানে:

  • যদি Age কলামে মান না থাকে (NULL), তাহলে 'Age not provided' দেখাবে।
  • যদি Age 18 বছরের কম হয়, তাহলে 'Minor' দেখাবে।
  • অন্যথায়, 'Adult' দেখাবে।

সারাংশ

SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক যা SQL কোডে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি Simple CASE এবং Searched CASE দুইভাবে ব্যবহৃত হতে পারে:

  • Simple CASE: একটি কলামের মানের ভিত্তিতে শর্ত পরীক্ষা।
  • Searched CASE: একাধিক শর্ত পরীক্ষা এবং নির্দিষ্ট ফলাফল প্রদান।

CASE স্টেটমেন্টটি শর্তের ভিত্তিতে ফলাফল নির্ধারণ করতে সহায়তা করে এবং এটি SQL কুয়েরি, স্টোরড প্রসিডিউর, এবং ফাংশনে ব্যাপকভাবে ব্যবহৃত হয়।

Content added By

SWITCH এবং IIF ফাংশন উভয়ই SQL Server এবং T-SQL এর মধ্যে ব্যবহার করা হয় শর্তাবলী যাচাই করার জন্য এবং বিভিন্ন শর্তের ভিত্তিতে বিভিন্ন ফলাফল প্রদান করতে। এগুলি সাধারণত জটিল শর্তযুক্ত কুয়েরি লেখার জন্য ব্যবহৃত হয়।


1. SWITCH ফাংশন

SWITCH ফাংশন একটি বহুমুখী শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি একাধিক শর্ত পরীক্ষা করে এবং প্রথম মেলে এমন শর্তের ফলাফল প্রদান করে। এটি সাধারণত CASE স্টেটমেন্টের একটি বিকল্প হিসেবে ব্যবহার করা হয়।

SWITCH ফাংশন SQL Server-এ সরাসরি উপলব্ধ নেই, তবে আমরা এটি CASE স্টেটমেন্টের সাহায্যে ব্যবহার করতে পারি, যেটি কার্যত SWITCH এর সমতুল্য।

SWITCH ফাংশনের সিনট্যাক্স:

SELECT SWITCH (
    expression1 = value1, result1,
    expression2 = value2, result2,
    expression3 = value3, result3,
    ...
    expressionN = valueN, resultN
);

তবে SQL Server-এ SWITCH ফাংশনের জন্য কোনও সরাসরি সমর্থন নেই, তাই আমরা CASE স্টেটমেন্ট ব্যবহার করি:

CASE (SWITCH এর সমতুল্য):

SELECT 
    CASE 
        WHEN Department = 'HR' THEN 'Human Resources'
        WHEN Department = 'IT' THEN 'Information Technology'
        WHEN Department = 'Finance' THEN 'Finance Department'
        ELSE 'Other'
    END AS DepartmentName
FROM Employees;

এটি Department কলামকে চেক করে এবং সংশ্লিষ্ট মানের ভিত্তিতে একটি প্রাসঙ্গিক নাম প্রদান করে।


2. IIF ফাংশন

IIF ফাংশন T-SQL এর মধ্যে একটি শর্তযুক্ত ফাংশন, যা IF এবং ELSE শর্তের মতো কাজ করে। IIF ফাংশনটি একটি শর্ত (condition) যাচাই করে এবং শর্তটি সঠিক হলে একটি ফলাফল প্রদান করে, অন্যথায় একটি ভিন্ন ফলাফল প্রদান করে।

IIF ফাংশনের সিনট্যাক্স:

IIF(condition, result_if_true, result_if_false)
  • condition: শর্ত যা যাচাই করা হবে।
  • result_if_true: যদি শর্তটি সত্য (TRUE) হয়, তবে এই মানটি প্রদান করা হবে।
  • result_if_false: যদি শর্তটি মিথ্যা (FALSE) হয়, তবে এই মানটি প্রদান করা হবে।

IIF ফাংশনের উদাহরণ:

SELECT 
    FirstName, 
    LastName, 
    IIF(Salary > 50000, 'High Salary', 'Low Salary') AS SalaryStatus
FROM Employees;

এটি Salary কলামের মান যাচাই করে, যদি এটি ৫০,০০০ এর বেশি হয়, তাহলে "High Salary" রিটার্ন করবে, অন্যথায় "Low Salary" রিটার্ন করবে।


SWITCH এবং IIF এর মধ্যে পার্থক্য

  1. বহু শর্ত:
    • SWITCH: একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং যেকোনো একটি শর্ত মিললে তার সংশ্লিষ্ট ফলাফল প্রদান করে।
    • IIF: একক শর্ত পরীক্ষা করে, যেখানে শুধুমাত্র দুটি ফলাফল (একটি শর্ত পূর্ণ হলে একটি এবং না হলে অন্যটি) পাওয়া যায়।
  2. কোডের সহজতা:
    • SWITCH: একাধিক শর্তের জন্য কাস্টম কুয়েরি তৈরি করা সহজ।
    • IIF: একটি সহজ শর্ত যাচাই করার জন্য ভালো, তবে অনেক শর্তের জন্য ব্যবহার করা কঠিন হতে পারে।

সারাংশ

  • SWITCH (CASE) ফাংশন একাধিক শর্ত যাচাই করে এবং প্রথমে মেলে এমন শর্তের ফলাফল প্রদান করে।
  • IIF ফাংশন একটি একক শর্ত যাচাই করে এবং শর্তটি সত্য হলে একটি ফলাফল, আর মিথ্যা হলে অন্য একটি ফলাফল প্রদান করে।

এই দুটি ফাংশন SQL Server এবং T-SQL-এ শর্তাবলী নির্ধারণ করার জন্য ব্যবহার করা হয় এবং ডেটাবেসের মধ্যে আরও উন্নত শর্তযুক্ত কুয়েরি লেখার জন্য সহায়ক।

Content added By

SQL-এ কন্ডিশনাল লজিক সাধারণত IF...ELSE বা CASE স্টেটমেন্টের মাধ্যমে ব্যবহৃত হয়। কন্ডিশনাল লজিক ব্যবহৃত হয় যখন আপনার বিভিন্ন শর্ত অনুযায়ী বিভিন্ন অ্যাকশন নিতে হয়।

এখানে IF...ELSE এবং CASE এর উদাহরণ দেওয়া হলো:


১. IF...ELSE কন্ডিশনাল লজিক

IF...ELSE স্টেটমেন্টটি কন্ডিশনাল লজিক প্রয়োগ করতে ব্যবহৃত হয়, যেখানে শর্তের ভিত্তিতে কোডের বিভিন্ন অংশ চালানো হয়।

উদাহরণ ১: IF...ELSE দিয়ে শর্ত পরীক্ষা করা

ধরা যাক, আপনার একটি Employees টেবিল আছে এবং আপনি একটি কর্মীকে Status আপডেট করতে চান, তার কর্মদক্ষতার ওপর ভিত্তি করে। যদি কর্মীর Salary 50,000 এর বেশি হয়, তাহলে তার স্ট্যাটাস 'Active' হবে, অন্যথায় 'Inactive' হবে।

DECLARE @Salary INT;
SET @Salary = 60000; -- কর্মীর সেলারি সেট করুন

IF @Salary > 50000
BEGIN
    PRINT 'Employee is Active';
END
ELSE
BEGIN
    PRINT 'Employee is Inactive';
END

এখানে, যদি @Salary 50,000 এর বেশি হয়, তাহলে 'Employee is Active' প্রিন্ট হবে। অন্যথায়, 'Employee is Inactive' প্রিন্ট হবে।


উদাহরণ ২: টেবিলের আপডেট করা IF...ELSE এর মাধ্যমে

ধরা যাক, আপনি Employees টেবিলের কর্মীদের Status আপডেট করতে চান, তাদের Salary এর ভিত্তিতে:

UPDATE Employees
SET Status = 
    CASE 
        WHEN Salary > 50000 THEN 'Active'
        ELSE 'Inactive'
    END

এখানে, Salary যদি 50,000 এর বেশি হয়, তাহলে Status কলামের মান 'Active' হবে, অন্যথায় 'Inactive' হবে।


২. CASE কন্ডিশনাল লজিক

CASE একটি SQL এক্সপ্রেশন যা একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং শর্তের ভিত্তিতে ভিন্ন মান প্রদান করে।

উদাহরণ ১: CASE দিয়ে মান পরিবর্তন

ধরা যাক, আপনার Employees টেবিলে Salary এর ভিত্তিতে কর্মীদের Grade নির্ধারণ করতে চান:

SELECT Name, Salary,
    CASE 
        WHEN Salary > 80000 THEN 'A'
        WHEN Salary BETWEEN 50000 AND 80000 THEN 'B'
        ELSE 'C'
    END AS Grade
FROM Employees;

এখানে, কর্মীর Salary এর ভিত্তিতে:

  • যদি সেলারি 80,000 এর বেশি হয়, তাহলে Grade হবে 'A'
  • যদি সেলারি 50,000 থেকে 80,000 এর মধ্যে হয়, তাহলে Grade হবে 'B'
  • অন্যথায় Grade হবে 'C'

উদাহরণ ২: CASE ব্যবহার করে ডেটা আপডেট করা

ধরা যাক, আপনি Employees টেবিলের Salary এর ভিত্তিতে Status আপডেট করতে চান:

UPDATE Employees
SET Status = 
    CASE 
        WHEN Salary > 80000 THEN 'Active'
        WHEN Salary BETWEEN 50000 AND 80000 THEN 'Probation'
        ELSE 'Inactive'
    END

এখানে, কর্মীর Salary এর ভিত্তিতে:

  • 80,000 এর বেশি সেলারি হলে Status হবে 'Active'
  • 50,000 থেকে 80,000 এর মধ্যে সেলারি হলে Status হবে 'Probation'
  • অন্যথায় Status হবে 'Inactive'

সারাংশ

  • IF...ELSE: একক শর্তে সিদ্ধান্ত নেওয়ার জন্য ব্যবহৃত হয়। এটি সাধারণত ছোট স্কোপে কন্ডিশনাল লজিক প্রয়োগে ব্যবহৃত হয়।
  • CASE: একাধিক শর্তের জন্য ব্যবহৃত হয় এবং এটি একটি এক্সপ্রেশন হিসেবে কাজ করে, যা টেবিলের সিলেক্ট বা আপডেট স্টেটমেন্টে ব্যবহার করা হয়।

এই কন্ডিশনাল লজিক আপনাকে SQL কোডের মধ্যে শর্তভিত্তিক সিদ্ধান্ত নিতে সাহায্য করে এবং ডেটাবেসের কার্যকারিতা আরো শক্তিশালী ও কাস্টমাইজড করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...